Businesses are continually trying to improve the services that they provide to their customers. To better address their customer needs, businesses often provide “customer service departments.” These departments typically employ individuals (sometimes referred to as “agents” or “representatives”) who answer questions, inquiries, complaints and/or other sales and service issues. At a most basic form, an agent communicates with customers via a telephone to orally answer sales/service inquiries of customers who call the customer service department.
Customer relationship management (CRM) systems have become popular in recent years to automate interactions between businesses and customers. Using hardware and software, many tasks traditionally performed by agents may be performed electronically. For instance, customers may listen to prerecorded messages in automated voicemail systems (a form of CRM) and make menu selections using a telephone keypad.
However, businesses, products, and customers may vary greatly from one situation to another. What works very well for one business may not work as well for another. Given this, CRM systems are often customized for each business. This customization may be expensive and lengthy, involving several groups of individuals to provide to businesses with, for example, customized software code, customized hardware, customized applications, and the like.
For example, to allow a business to access client account information via the web, a web application customization may involve a web application developer, a web designer and a database application developer. The web application developer may be responsible for taking business requirements and for developing the complete web application. The web application developer may ask a web designer to create a user interface (UI) mock up.
The web application developer or the designer may be familiar with web development. Either may create files using hypertext markup language (HTML), Active Server Page (ASP) and/or JavaServer Page (JSP) scripting, for example. However, most web application developers and web designers are unfamiliar with the configuration of underlying database(s) and/or database application(s) (e.g. a CRM application) that may provide information and functionality relevant to the application. Therefore, a third group of developers, e.g. database application developers, often help create the custom application.
The database application developer may reconfigure database(s) and/or database application(s) to meet the specific business requirements. For example, a database application developer may configure and/or create templates, applets, repository views, business objects, business components, data services and network services. To accomplish these tasks, the database application developer is usually specially trained in skills specifically relating to a particular database and/or database application. For example, a Siebel® application developer may be trained to work with eScript/Siebel VB™, BrowserScript™, Siebel® object configurations and Siebel® templates.
Once the database(s) and/or the database application(s) are configured and useful interfaces or objects created, the database application developer may then communicate instructions to the web application developer on how to access the interfaces and/or objects. Using these interfaces and objects, the web application developer may create a front end (e.g. a GUI) to provide user access to the database.
This customization process may take weeks, if not months, causing delays in deployment of the application. For example, the web application developer may be unfamiliar with new and/or existing database application interfaces, as well as with the database(s) structure. This unfamiliarity may make it difficult to request the proper modifications. This unfamiliarity may also add development time to allow the web developer to learn how to access and interact with the interfaces in the application code. Even if a web application developer is familiar with the interfaces, the developer may have to write and debug code to create the proper custom application.
Also adding to deployment time is the database application developer's tasks of configuring the database application to support the custom application, e.g. modifying an existing feature, adding a feature, updating a component, installing components, or the like. Thus, what is needed is an improved system and method for generating a custom application.